본 게시글의 원문은 Yann Debray의 MATLAB with Python Book 입니다. 해당 책은 MIT 라이센스를 따르기 때문에 개인적으로 번역하여 재배포 합니다. 본 포스팅에는 추후 유료 수익을 위한 광고가 부착될 수도 있습니다.

MIT License

Copyright (c) 2023 Yann Debray

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

본 게시물에서 활용된 소스 코드들은 모두 Yann Debray의 GitHub Repo에서 확인할 수 있습니다.

4.2. MATLAB 라이브 태스크에서 Python 코드 실행하기

MATLAB R2022a부터는 사용자 정의 라이브 태스크를 개발할 수 있습니다. 그래서 2021년 중반에 Lucas Garcia와 함께 Python 라이브 태스크를 프로토타이핑하기 시작했습니다. 사실은 처음에는 그다지 훌륭하지 않은 버전을 만들었고, 그 후에 Lucas가 이를 훌륭한 형태로 개선했습니다 (이 작업에 대한 모든 칭찬은 Lucas에게 돌아가야 합니다). 이 Minimal Viable Product(MVP)을 기반으로, MATLAB 편집기 팀과 Python 인터페이스 팀과 협력하여 개발에 참여하게 되었습니다. 우리는 이 프로토타입을 GitHub에서 오픈소스로 공개하여 초기 피드백을 받고, 향후 버전에서 제품에 포함시키는 것이 가장 좋을 것으로 결정했습니다.

이 코드는 https://github.com/mathworks 에서 사용 가능합니다.

이를 테스트하려면 저장소를 클론하거나 다운로드하세요. 설정 스크립트를 실행하여 라이브 태스크를 작업 갤러리에 등록하세요. 새 라이브 스크립트를 생성한 후 라이브 편집기 탭에서 작업을 선택하세요. 라이브 스크립트에서 MY TASKS 아래에 다음과 같은 아이콘이 표시됩니다:

이 아이콘을 클릭하면 라이브 스크립트에 커서가 있는 위치에 라이브 태스크가 추가됩니다. 또는 라이브 스크립트에서 “python”이나 “run”을 직접 입력한 후 작업을 선택할 수 있습니다:

첫 번째 버전은 다음과 같았습니다(이것은 제 버전입니다):

그리고 Lucas가 개선한 버전은 다음과 같습니다: